package test;

/**
 * 常量池(constant pool)指的是在编译期被确定，并被保存在已编译的.class文件中的一些数据。
 * 它包括了关于类、方法、接口等中的常量，也包括字符串常量。
 */
public class ConstantPool {
  public static void main(String[] args) {
    String s0 = "hans";
    String s1 = "hans";
    String s2 = "ha" + "ns";
    String s3 = new String("hans");
    //当调用 intern 方法时，如果池已经包含一个等于此 String 对象的字符串（用 equals(Object) 方法确定），则返回池中的字符串。
    // 否则，将此 String 对象添加到池中，并返回此 String 对象的引用。
    String s4 = s3.intern();
    String zjt = new String("zjt");
    String s5 = zjt.intern();
    zjt = zjt.toUpperCase();
    String s6 = "ha" + new String("ns");
    String s7 = s0;
    s0 = s0 + "zjt";
    s3 = s3 + "zjt";
    System.out.println(s0 == s1);
    System.out.println(s0 == s2);
  }
}
